#ifndef SCORE_OBJECT_CONTROL___
#define SCORE_OBJECT_CONTROL___

#include "Player.h"
#include "PlayState.h"

#define SO_DEFAULT_SCORE (50)

class ScoreObjectControl
{
    typedef struct ScoreObjectData {
        const OgreNewt::Collision *original_collision;
        int score_amount;
        bool done;
    } ScoreObjectData;

    Player *player;
    PlayState *play_state;
    std::map<OgreNewt::Body *, ScoreObjectData> score_objects;

public:
    ScoreObjectControl();
    ScoreObjectControl *clone();
    void reset();
    void addScoreObject(OgreNewt::Body *body, std::map<Ogre::String, Ogre::String> &params);
    void setPlayer(Player *pl) { player = pl; }
    void setPlayState(PlayState *ps) { play_state = ps; }
    void collision(OgreNewt::Body *object);
};

#endif
